package com.wty.jvm.methodRange;

/**
 * @Author wangtengyu
 * @Create 2018-07-23-10:23
 * 比较jdk1.6与jdk1.7下常量池
 */
public class Test1 {
    public static void main(String[] args) {

        String s1=new StringBuilder("test").append("wty").toString();
        /**
         * 在jdk1.6下结果为false 因为jdk1.6下intern()把首次遇到的字符串实例存储到了永久代
         * 返回的是永久代的引用并把该引用存储到常量池,StringBuilder对象在堆中
         *
         * 在jdk1.7环境下结果为true,因为jdk1.7下intern()把首次遇到的字符串的引用存储到常量池，没有复制操作
         */
        System.out.println(s1.intern()==s1);

        /**
         * 报false,因为java字符串在常量池中已经存在了
         */
        String s2=new StringBuilder("ja").append("va").toString();
        System.out.println(s2.intern()==s2);


    }

}
